In data communication systems, to handle different Quality of Service (QoS) requirements, there may be a need for supporting multiple parallel data paths to exchange data between two or more peer entities, e.g., a client and a server in a client-server model of interactions between two entities. Each data path between the peer entities may be characterized by various QoS parameters such as priority, delay, jitter, data rate, etc. Depending on the QoS parameters for each data path, the buffer (storage) requirement in a communication system may be determined to manage the inflow of data packets from the application and to maintain the data packets until the packets are sent to the peer entity on the receiving side.
Given the QoS parameters that include but are not limited to priority, delay, jitter and data rate for each data path, each data path may lead to certain buffer (storage) requirements. To handle the peak data rate for each data path and to maintain the QoS, the data communication system may be capable of allocating maximum possible transmission resources for each data path based on the QoS parameters associated with that data path. The transmission resources may be the uplink radio frequency channel bandwidth in the case of wireless communication systems. In a data communication system, the entity which transmits the data is referred as “transmitting entity” and the entity which receives the data is referred as “receiving entity.”
The services and features of data communication systems may be implemented in distinct layers. The data packets given by the application or upper layer of any protocol is referred as Service Data Unit (SDU). The data packet processing on the transmission side may add headers or footers or both to an SDU and the data unit provided to the lower layer is referred to as Protocol Data Unit (PDU) as shown in FIG. 1. On the transmission side a protocol entity accepts an SDU from the upper layer as the input and performs data packet processing. On the receiving side, a protocol entity accepts a PDU as the input from the lower layer and performs data packet processing. The data packet processing on the reception side may remove headers or footers or both from the PDU and provide an SDU to the upper layer.
Typically in a data communication system, in a transmitting entity, since the allocated transmission resources may not be always sufficient to send all the pending data from an application, the data packets may be segmented or packed depending on the available transmission resources. The “transmission units” herein referred as TU that are formed from the pending data of an active data path as shown in FIG. 2 based on the allocated transmission resources. A PDU may contain multiple TUs from different active data paths.
Based on the QoS parameters, there may be multiple active data paths and the allocated transmission resources may be distributed across all the active data paths based on their QoS parameters. When a data packet in a data path is segmented or packed, there may be additional overhead such as data packet header or data packet segment header while forming the transmission unit as shown in FIG. 2. Every segment may lead to an additional overhead of header (HDR) in the TU.
A communication system may allocate transmission resources for each data path based on the QoS parameters associated with them. Since the allocated transmission resources may not be always sufficient to send all the pending data from an application, the data packets may be segmented or packed depending on the available transmission resources. In such a case, doing segmentation may lead to inefficient usage of the transmission resources.
Let B denote the number of bytes of header information that is required to add a segment in a transmission unit. Based on the allocated TU for a data path, there may be scenarios where the remaining transmission resources that can be used for segmenting the last data packet could be either exactly B bytes or B+M bytes where M<B. In such a case, doing segmentation leads to inefficient usage of the transmission resources. There is a tradeoff between whether to segment a data packet and incur the overhead for the segmentation headers or allocate the transmission resources to the other active data paths which may better utilize the transmission resources.